//////////////////////////////////////////////////////////////////////////////////
// INSTITUTION:    Xidian University
// DESIGNER:       Yuan Xiaoguang & Ren Aifeng    
// 
// Create Date:    16:53:58 02/14/2016 
// Design Name:    PWM_TOP
// Module Name:    PWM_TOP
// Project Name:   PWM
// Target Devices: EP3C16F484C6
// Tool versions:  Quartus II 13.1
// Design Lauguage:Verilog-HDL
// Dependencies:   FREQUENCY_DIVIDER.v
//						 PWM_COMPARATOR.v
//                 PWM_VALUE_SET.v
//                 PWM_COMPARATOR.v 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: if i_compare_value < i_compare_set_value o_compare_result = 1
//                      otherwise o_compare_result = 0
//
//////////////////////////////////////////////////////////////////////////////////
module PWM_TOP (
									input 	 		   i_sys_clk,
									input					i_sys_rst,
									input [6:0]       i_compare_set_value,
									output 				o_compare_result
								);

wire w_pwm_clk;								
wire [6:0] w_compare_value;
								
FREQUENCY_DIVIDER u1(
							.i_sys_clk(i_sys_clk),
							.i_sys_rst(~i_sys_rst),
							.o_div_clk(w_pwm_clk)
							);
							
PWM_COUNTER u2(
					.i_pwm_clk(w_pwm_clk),
					.i_sys_rst(~i_sys_rst),
					.o_pwm_val(w_compare_value)
					 );
								
					
PWM_COMPARATOR u3(
						.i_compare_value(w_compare_value),
						.i_compare_set_value(i_compare_set_value),
						.o_compare_result(o_compare_result)
					   );
endmodule
